/*
 * TiposAsteroide.cpp
 *
 *  Created on: Apr 1, 2012
 *      Author: gonzalo
 */

#include "TipoAsteroide.h"
#include "../common/utils/UtilInt.h"
#include "../common/utils/UtilString.h"
#include "../common/utils/FileChecker.h"

TipoAsteroide::TipoAsteroide(DTOTipoAsteroide* dto) {
	//First format the dto to valid data
	formatDTO(dto);

	this->alto = dto->alto;
	this->ancho = dto->ancho;
	this->imagen = dto->imagen;
	this->nombre = dto->nombre;
	this->rotacion = dto->rotacion;
}

DTOTipoAsteroide* TipoAsteroide::getDTO(){
	return new DTOTipoAsteroide(nombre,imagen,ancho,alto,rotacion);
}


TipoAsteroide::~TipoAsteroide() {
}


void TipoAsteroide::formatDTO(DTOTipoAsteroide* dto){
	dto->alto = UtilInt::positiveInt(dto->alto,TA_DEFAULT_HEIGTH);
	dto->ancho = UtilInt::positiveInt(dto->ancho,TA_DEFAULT_WIDTH);

	//nombre no hace falta validarlo, se valida para ver si es valido mas tarde
	dto->rotacion = UtilInt::inRange(dto->rotacion,TA_MIN_ROTATION,TA_MAX_ROTATION,TA_MIN_ROTATION);

	if (!FileChecker::fileExists(dto->imagen))
		dto->imagen = TA_DEFAULT_IMAGE ;
}

